package com.daotingli.backendprograms.utils;

import org.springframework.stereotype.Component;

@Component
public class CreateBookName {
    private static final String[] CHINESE_CHARACTERS = {
        "一", "二", "三", "四", "五", "六", "七", "八", "九", "十",
        "百", "千", "万", "亿", "零", "壹", "贰", "叁", "肆", "伍",
        "陆", "柒", "捌", "玖", "拾", "北", "京", "上", "海", "天",
        "津", "重", "庆", "广", "州", "深", "圳", "成", "都", "武",
        "汉", "西", "安", "杭", "州", "南", "京", "大", "学", "中",
        "国", "人", "民", "银", "行", "小", "说", "故", "事", "电",
        "影", "音", "乐", "艺", "术", "科", "技", "健", "康", "美",
        "食", "旅", "游", "体", "育", "军", "事", "历", "史", "文",
        "化", "社", "会", "经", "济", "政", "治", "法", "律", "教",
        "育", "职", "业", "家", "庭", "婚", "姻", "情", "感", "心",
        "理", "哲", "学", "宗", "教", "自", "然", "地", "理", "环",
        "境", "动", "物", "植", "物", "昆", "虫", "鱼", "鸟", "兽"
    };

    public static boolean validateBookName(String bookName) {
        // 检查书名长度是否在2到10个字符之间
        if (bookName == null || bookName.length() < 2 || bookName.length() > 10) {
            return false;
        }
        // 检查是否全部为汉字
        for (int i = 0; i < bookName.length(); i++) {
            char ch = bookName.charAt(i);
            if (!String.valueOf(ch).matches("[\\u4E00-\\u9FA5]+")) {
                return false;
            }
        }
        return true;
    }

    public static String generateRandomBookName() {
        // 随机生成2到10之间的长度
        int length = 2 + (int)(Math.random() * ((10 - 2) + 1));
        
        StringBuilder bookName = new StringBuilder();
        
        // 生成随机书名
        for (int i = 0; i < length; i++) {
            int index = (int)(Math.random() * CHINESE_CHARACTERS.length);
            bookName.append(CHINESE_CHARACTERS[index]);
        }
        
        return bookName.toString();
    }
}
